Method and system for handling network congestion

ABSTRACT

The present invention relates to a method and system for handling congestion in a packet data network, wherein at least two operating modes of congestion handling are selected based on a detected congestion level. The operating modes will then affect the applied congestion handling modes to thereby achieve a flexible and automatic network response which is based on the congestion level. Thereby applications&#39; quality requirements and service provider&#39;s business goals can both be met in an adequate manner.

FIELD OF THE INVENTION

[0001] The present invention relates to a method and system for handling network congestion in a packet data network, such as an IP network.

BACKGROUND OF THE INVENTION

[0002] Congestion in computer networks is becoming an important issue due to the increased mismatch in links speeds caused by intermixing of old and new technology. Recent technological advances have resulted in a significant increase in the bandwidth of computer network links. However, these new technologies must coexist with the old low bandwidth media. This heterogeneity has resulted in a mismatch of arrival and service rates in the intermediate nodes in the network causing increased queuing and congestion. If the load is small, throughput generally keeps up with the load. As the load increases, throughput increases. After the load reaches the network capacity, the throughput stops increasing. If the load is increased any further, queues start building, potentially resulting in packets being dropped. Throughput may suddenly drop when the load increases beyond this point and the network is said to be congested.

[0003] In the following, congestion handling methods are methods that aim at reducing or avoiding network congestion as well as methods optimizing network performance at the time of congestion. Thus, these methods cover, for example, a scheme which allows the network to operate at the point after which the increase in the throughput is small but results in a significant increase in the response time results. Another example is a scheme which tries to keep operating a network in the zone before packets start getting lost

[0004] Modern packet data networks handle network congestion in a relatively simple-minded fashion. Typically, congestion is dealt with some packet discarding algorithm whose basic objective typically is to satisfy the quality requirements of applications. As to the packet discarding, this can be interpreted in a way that in the optimal case the packet loss ratio of each individual flow is at most the packet loss parameter defined by the characteristics of the application. From this viewpoint, it is usually assumed that during a congestion situation, the network nodes shall first discard packets with the loosest or lowest packet loss requirement. However, if this principle is used extensively, network resources are reserved or given primarily for flows and applications with the most stringent quality requirements. From the network and service provider viewpoint, this result may be totally unacceptable. For example, a video stream with high quality of service (QoS) requirements may take the place of ten voice streams with lower QoS requirements, whereas the revenue obtained from the single video stream is typically much lower than the revenue obtained from ten voice calls. Actually, what the service provider usually wants is either to devide the capacity evenly among the customers, or proportional to the fee paid by each customer. These two targets, to serve applications quality requirements, i.e. individual benefit, and to meet the service provider's business goals, i.e. global benefit, are difficult to reach at the same time.

SUMMARY OF THE INVENTION

[0005] It is therefore an object of the present invention to provide a method and system for handling network congestion, by means of which a flexible congestion handling scheme serving both of the above targets in an adequate manner can be provided.

[0006] This object is achieved by a method of handling network congestion in a packet data network, said method comprising the steps of:

[0007] determining a congestion level in said packet data network;

[0008] selecting based on said determined congestion level one of at least two operating modes for performing said network congestion handling.

[0009] Furthermore, the above object is achieved by a system for handling network congestion in a packet data network, wherein said system is arranged to determine a congestion level in said packet data network, and to select based on said determined congestion level one of at least two operating modes for said network congestion handling.

[0010] Additionally, the above object is achieved by a network element for handling network congestion in a packet data network, said network element being arranged to determine a congestion level in said network element, and to select based on said determine congestion level one of at least two operating modes for said network congestion handling.

[0011] Accordingly, network congestion handling can be optimized based on the detected network congestion level. If the network congestion level is small, it is possible to optimize the network congestion handling algorithm based on applications quality requirements in one operating mode, because occasional congestion handling actions do not have a significant effect on the sharing of network resources. In contrast thereto, if the network congestion level is high, other network congestion handling rules can be defined in another operating mode, wherein the total resources are divided between traffic flows. In other words, the operator supports the interests of individual applications as long as the network congestion level is low enough and the business objectives of the operator are not threatened. Once the network congestion level gets worse, a new operating mode is selected to take into account the overall and not individual interests.

[0012] The at least two operating modes may be based on at least one of a packet discarding method, a method involving a reduction of traffic inserted to the network, and a method of shortening or compressing data packets. The at least two operating modes may comprise a quality-based operating mode for controlling network congestion based on quality requirements of applications, and a quantity-based operating mode for controlling network congestion based on a desired sharing of resources between different flows and/or customers. In particular, the quality-based operating mode is preferably selected at a lower congestion level, and the quantity-based operating mode is preferably selected at a higher congestion level. If the quality-based operating mode is set, the determined congestion level is checked, and the operating mode is changed to the quantity-based operating mode if the congestion level exceeds a first predetermined threshold level. On the other hand, if the quantity-based operating mode is set, the determined congestion level is checked and the operating mode is changed to the quality-based operating mode if the congestion level falls below a second predetermined threshold level. Preferably, the second predetermined threshold level is lower than the first predetermined threshold level, to thereby provide a certain switching hysteresis by means of which excessive switching between operating modes can be prevented. The quality-based operating mode may be used as an initial default operating mode. Furthermore, the first and second predetermined thresholds may correspond to first and second packet loss ratios, respectively.

[0013] The determination step may be performed by measuring the average packet loss ratio during a predetermined time period. In particular the average packet loss ratio may be an exponentially weighted moving average. As an alternative, the determination step may be performed by applying a weighting scheme. In this case, packet loss values may be weighted based on different classes defining maximum allowed packet loss ratios.

[0014] According to an advantageous further development, the at least two operating modes may comprise a first operating mode applied below a first congestion level and using no congestion handling methods, a second operating mode applied between the first and a higher second congestion level and using a congestion handling method based on quality requirements of applications, a third operating mode applied between said second and a higher third congestion level and using a congestion handling method based on a reduction of a traffic amount inserted to the packet data network, and a fourth operating mode applied above said third congestion level and using a congestion handling method based on a desired sharing of resources between different flows and/or customers. The congestion handling method of the second operating mode may be adapted to first discard data packets with highest allowed packet loss ratios in a way that packet loss ratios of different quality categories remain on an acceptable level. Furthermore, the congestion handling method of the third operating mode may be adapted to control adaptive traffic sources in a way that a congestion situation is alleviated before the congestion situation reaches said third congestion level. Moreover, the congestion handling method of the fourth operating mode may be adapted to divide the capacity of the packet data network proportional to nominal bit rates.

[0015] The congestion level may be determined using at least one parameter related to said network congestion. The at least one parameter may comprise packet loss ratios, filling levels of token buckets, buffer lengths in terms of number of packets or number of bytes, buffering delays for packets, measured bit rates of links and QoS thresholds.

[0016] The network congestion handling system may be arranged to determine the congestion level in a predetermined network element, in a predetermined number of network elements, or in the whole packet data network. The congestion may be determined based on the whole traffic or only a subset of traffic, e.g. some traffic class or classes in the network element, network elements or packet data network.

[0017] The network congestion handling network element may be a router or a buffer for an outgoing link in the packet data network.

[0018] Further advantageous developments are defined in the dependent claims.

BRIEF DESCRIPTION OF THE DRAWINGS

[0019] In the following the present invention will be described in greater detail based on preferred embodiments with reference to the accompanying drawings in which:

[0020]FIG. 1 shows a schematic architecture of a control system for handling network congestion, according to the preferred embodiments;

[0021]FIG. 2 shows a schematic diagram indicating different control domains depending on the network congestion level, according to the preferred embodiments;

[0022]FIG. 3 shows an arrangement of several operating modes for handling network congestion depending on the level of congestion;

[0023]FIG. 4 shows a congestion handling scheme based on four operating modes according to a first preferred embodiment;

[0024]FIG. 5 shows a flow diagram indicating a congestion handling processing based on two operating modes according to a second preferred embodiment;

[0025]FIG. 6 shows a diagram indicating a time-dependent behavior of a two-mode-system according to the second preferred embodiment; and

[0026]FIG. 7 shows a table indicating determined weighted congestion levels.

DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0027] The preferred embodiments of the present invention will now be described based on a multimode congestion handling system for packet networks, such as IP networks.

[0028]FIG. 1 shows an architecture of a congestion handling scheme or a network with n users sharing it. The congestion state of the system is determined by the number of packets in the system. The total load at a bottleneck resource corresponds to the sum of the individual loads of the users 1 to n. Usually, all resources demanded by the users 1 to n are granted. The network comprises a congestion handling function with a congestion control feature and a congestion avoidance feature.

[0029] The congestion avoidance feature generates a feedback information, e.g. a binary feedback, which controls traffic sources of the users 1 to n so as to increase or decrease their load. Thus the congestion avoidance function is arranged to prevent the network from becoming congested.

[0030] On the other hand, the congestion control function is arranged to recover the network from a congested state of high delay and low throughput. This may be achieved by discarding data packets or by shortening or compressing data packets.

[0031] According to the preferred embodiments, the congestion handling scheme is automatically selected by the network based on a detected congestion level to thereby achieve a flexible congestion response of the system.

[0032]FIG. 2 shows a schematic diagram of the basic principle underlying the present invention. In particular, different congestion handling operating modes are selected based on the network congestion level. These operating modes define a quality domain and a quantity domain of their congestion handling procedure. In the quality domain where the network congestion level is small, the network congestion handling algorithm is optimized based on applications quality requirements, because occasional congestion handling actions such as packet discarding do not have a significant effect on the sharing of network resources. In contrast thereto, in the quantity domain where the network congestion level is high, network congestion handling rules essentially define how the total resources are divided between the traffic flows of the users 1 to n. Thus, in the quality domain, the operator supports the interests of individual applications of the users 1 to n as long as the network congestion level is low enough and business objectives such as maximization of revenue of the operator are not threatened. In the quantity domain where the network congestion gets worse, overall interests of the users 1 to n are taken into account and traffic volumes, i.e. quantity, are handled instead of individual quality.

[0033] In other words, at small network congestion levels, the optimal congestion handling algorithm is based on applications quality requirements due to the fact that the effect of fulfilling the QoS requirements of a single application of the users 1 to n does not have any significant effect on the operator's business objectives. In contrast thereto, at high network congestion levels, the target of the congestion handling system is to realize a desired sharing of resources between different flows and/or users or customers according to the operator's business objectives due to the fact that it is not reasonable anymore to try to optimize the QoS for single applications. Thereby, the present invention provides an advanced network congestion handling system that takes into account both the applications' and the service provider's business targets, as well as any other target that requires specific congestion handling mechanisms.

[0034] In particular, according to the preferred embodiments, the network congestion handling system may have two or more operating modes. The selection of the operating mode may depend on the congestion situation in a single network element, a predetermined number of network elements, or the whole network. The congestion may be determined based on the whole traffic or only some traffic class or classes in the network element, network elements or packet data network. The network congestion level may be expressed as one or a combination of parameters such as, a buffer occupancy level, measured bit rates of links, QoS thresholds (e.g. allowed priority of Simple Integrated Media Access (SIMA)), occupancy level of a token bucket and the like. The operating modes may be based on congestion control functions such as packet discarding methods or methods that shorten or compress IP packets etc., or may be based on congestion avoidance functions such as methods that involve the reduction of traffic inserted to the network (e.g. methods having effect on the Transmit Control Protocol (TCP) flow control).

[0035] If the congestion handling system is arranged to perform the congestion handling in a single network element, this may be an inner part of a router or a buffer for an outgoing link, or any other unit that includes a mechanism to handle network congestion.

[0036]FIG. 3 shows a diagram indicating several operating modes for handling network congestion depending on the level of congestion. According to FIG. 3, the number of the operating mode increases with increased network congestion level. Each of the operating modes 1 to n may be based on specific congestion control and/or congestion avoidance functions thereby provide a flexible network response to any congestion situation.

[0037] In the following, a four-mode system according to a first preferred embodiment and a two-mode system according to a second preferred embodiment are described with reference to FIGS. 4 to 6.

[0038]FIG. 4 shows a diagram indicating four specific operating modes M0 to M3 according to the first preferred embodiment and their congestion handling methods. In the operating mode M0, no congestion control methods, such as packet discarding or the like, are applied in case of no or very low congestion below a first threshold level separating the modes M0 and M1. In the operating mode M1, a packet discarding algorithm is used which is solely based on the packet loss requirement of each application without taking into account the bit rates of the flows. Above a second predetermined threshold level separating the operating modes M1 and M2, the intermediate operating mode M2 is selected which may include, for instance, a congestion avoidance algorithm which tries to reduce the amount of traffic inserted to the network by a corresponding feedback information allowing a TCP flow control. Additionally or alternatively, a mechanism for shortening or compressing data packets may be applied in the intermediate operating mode M2. Above a third threshold level separating the operating modes M2 and M3, a congestion handling mechanism is selected in the operating mode M3 so as to divide the capacity evenly among all customers or users by using information about the momentary bit rates of the flows.

[0039] Thus, during lack of or low level of network congestion in the operating mode M0, there is no need to apply any network congestion handling actions, such as packet discarding. In this case application requirements of the users 1 to n are met and the operator's overall business objectives are not threatened.

[0040] During mild congestion in the operating mode M1, the system can be based on a number of predefined categories each with a different maximum packet loss ratio, for instance, 10⁻⁸, 10⁻⁶, 10⁻⁴, 10⁻². In the operating mode M1, the network unit or network first discards packets with the highest allowed packet loss ratio, in a way that at least in most cases the packet loss ratio of each category will remain on an acceptable level. The information about the packet loss ratio can be marked into the packet.

[0041] During intermediate network congestion in the operating mode M2, adaptive traffic sources may be controlled based on a feedback information. For example, TCP flows may be handled in a way that the congestion situation is alleviated before the congestion situation reaches a level in which the mode is changed to the operating mode M3. This kind of TCP flow control optimization may be based on an adjustment of the TCP sliding window and other known TCP flow control methods. As an alternative, the intermediate operating mode M2 may be arranged to utilize a congestion handling mechanism which involves the shortening of the length of the IP packets. In this case, the congestion is alleviated by either discarding some parts of the IP packets or by applying a compression scheme to the IP header and/or the payload portion.

[0042] During a state of severe congestion in the operating mode M3, the congestion handling system may effectively be used to divide the network capacity proportional to the nominal bit rates (NBR). This kind of system is preferably when the congestion situation is so severe that the network has to discard considerable amounts of packets.

[0043]FIG. 5 shows a flow diagram indicating a congestion handling processing in a two-mode system according to the second preferred embodiment. The two operating modes consist of a first operating mode M1 for a mild congestion situation and a second operating mode M3 for a severe congestion situation. Thus, in the second preferred embodiment, the intermediate operating mode M2 described in the first preferred embodiment has been omitted and the operating modes M0 and M1 of the first preferred embodiment have been merged together, while the same denotation is used for the operating modes for mild and severe congestion, for reasons of clarity.

[0044] The packet discarding procedure shown in FIG. 5 is as follows. When a packet arrives at a network unit responsible for network congestion handling, it is first checked whether the unit is in the first operating mode M1. If so, a check is performed as to whether the congestion level exceeds a threshold level L3. If this is the case, the operating mode is changed to the second operating mode M3, in which the packet discarding mechanism is based on the quantity used by the flow. If the congestion level is below the threshold level L3, the first operating mode M1 is maintained and a packet discarding mechanism based on quality requirements of the applications is used.

[0045] On the other hand, if the unit is not in the operating mode M1 when the packet arrives, it is checked whether the congestion level is below another predetermined threshold level L1. If not, then a second operating mode M3 is maintained and a packet discarding mechanism based on the quantity used by the flow is applied. On the other hand, if the congestion level is below the other threshold level L1, the operating mode is changed to the first operating mode M1 in which the packet discarding mechanism is based on the quality requirement of the application.

[0046] If there is a need to discard one or more packets, the algorithm of the proper discarding mode is applied, and the most appropriate packet to be discarded is selected. Thus, the congestion handling system starts from the operating mode M1 as a default operating mode for a situation without any or low congestion.

[0047]FIG. 6 shows a diagram indicating a time-dependent behavior of the congestion handling system according to second preferred embodiment. Before a time T1, the system starts in the first operating mode. M1 at a very low congestion. Then, the congestion or utilization level gradually increases and exceeds the upper threshold level L3 at the time T1. At this point in time, the operating mode is changed to the second operating mode M3. Then, after a while, the congestion level falls again below the other lower threshold level L1 and the operating mode is changed back to the first operating mode M1. The difference between the upper threshold level L3 and the lower threshold level L1 defines a hysteresis suitable to prevent too frequent or excessive changes between the operating modes.

[0048] The network congestion level measurement or detection may be performed by measuring the average packet loss ratio during a given period of time. Any suitable measuring principle can be used, such as an exponentially weighted moving average which gives an average packet loss ratio weighted with an exponential function. The congestion handling system may be implemented in a way that the threshold levels L1 and L3 in FIG. 6 correspond to two packet loss ratios, for instance 10 ⁻⁴ and 10⁻². Then, the operating mode is changed to the second operating mode M3 for severe congestion when the average packet loss ratio exceeds 1% and returns to the first operating mode M1 for mild or no congestion when the packet loss ratio falls below 0.01%.

[0049] Another possible implementation is based on a weighted congestion level. In this case, the congestion level C can be based on weighted packet loss values as given by the following equation: $C = \frac{\sum\limits_{i = 1}^{N}\quad {B_{i} \cdot \frac{P_{{loss},i}}{P_{{req},i}}}}{\sum\limits_{i = 1}^{N}\quad B_{i}}$

[0050] where

[0051] P_(loss,i) denotes the measured packet loss ratio in a quality class i (during the time intervall t),

[0052] P_(req,i) denotes the maximum allowed packet loss ratio in the class i,

[0053] B_(i) denotes the incoming number of bytes in the class i, and

[0054] N denotes the number of classes.

[0055]FIG. 7 shows a table indicating an example of calculations with three different quality classes, wherein no congestion is determined for a class 3 of highest quality requirements, and highest congestion is determined for an intermediate class 2. Due to the fact that the applied weights increase with the number of received bytes in the respective class, the impact of the high traffic class 1 packet loss ratio on the total congestion level is emphasized.

[0056] The principle presented in FIG. 6 may also be applied in this case of determining a weighted congestion level. For instance, the upper threshold level L3 in FIG. 6 may be “1” and the lower threshold level L1 may be “0.1”. The difference between the threshold levels L3 and L1 should be large enough due to the fact that the packet loss ratio may vary very quickly. The dynamics of the system also depend on the measuring interval which should be selected according to the desired requirements.

[0057] It is noted that the present invention may be applied in any packet data network having a mechanism to handle network congestion. Furthermore, the at least two different operating modes may be based on any congestion control or congestion avoidance mechanism suitable to achieve the desired flexible response of the network. Thus, the preferred embodiments may vary within the scope of the attached claims. 

1-26. (Cancelled)
 27. A method of handling network congestion in a packet data network, said method comprising the steps of: a) determining a congestion level in said packet data network; and b) selecting based on said determined congestion level one of at least two operating modes for performing said network congestion handling; c) wherein said at least two operating modes comprise a quality-based operating mode for controlling network congestion based on quality requirements of applications, and a quantity-based operating mode for controlling network congestion based on a desired sharing of resources between different flows and/or customers; and d) wherein said quality-based operating mode is selected at a lower congestion level, and said quantity-based operating mode is selected at a higher congestion level.
 28. A method according to claim 27, wherein said at least two operating modes are based on at least one of a packet discarding method, a method involving a reduction of traffic inserted to the network, a method of shortening or compressing data packets, and a method of arranging more network resources.
 29. A method according to claim 27, further comprising the step of changing to said quantity-based operating mode if said quality-based operating mode is set and the determined congestion level exceeds a first predetermined threshold level.
 30. A method according to claim 29, further comprising the step of changing to said quality-based operating mode if said quantity-based operating mode is set and said determined congestion level is below a second predetermined threshold level.
 31. A method according to claim 30, wherein said second predetermined threshold level is lower than said first predetermined threshold level.
 32. A method according to claim 27, further comprising the step of using said quality-based operating mode as an initial default operating mode.
 33. A method according to claim 31, wherein said first and second predetermined threshold levels correspond to first and second packet loss ratios, respectively.
 34. A method according to claim 27, wherein said congestion level is determined using at least one parameter related to said network congestion.
 35. A method according to claim 34, wherein said at least one parameter comprises packet loss ratios, filling levels of token buckets, buffer lengths in terms of number of packets or number of bytes, buffering delays for packets, measured bit rates of links and QoS thresholds.
 36. A method according to claim 34, wherein said at least one parameter is a measured parameter of the whole traffic or a subset of traffic in said packet data network.
 37. A method according to claim 36, wherein said subset of traffic corresponds to predetermined traffic classes.
 38. A method according to claim 27, wherein said determination step is performed by measuring the average packet loss ratio during a predetermined time period.
 39. A method according to claim 38, wherein said average packet loss ratio is an exponentially weighted moving average.
 40. A method according to claim 27, wherein said determination step is performed by applying a weighting scheme.
 41. A method according to claim 40, wherein packet loss values are weighted-based on different classes defining maximum allowed packet loss ratios.
 42. A method according to claim 27, wherein said at least two operating modes comprise a first operating mode (M0) applied below a first congestion level and using no congestion control methods, a second operating mode (M1) applied between said first and a higher second congestion level and using a congestion control method based on quality requirements of applications, a third operating mode (M2) applied between said second and a higher third congestion level and using a congestion control method based on a reduction of a traffic amount inserted to said packet data network, and a fourth operating mode (M3) applied above said third congestion level and using a congestion control method based on a desired sharing of resources between different flows and/or customers.
 43. A method according to claim 42, wherein said congestion control method of said second operating mode is adapted to first discard data packets with highest allowed packet loss ratios in a way that packet loss ratios of different quality categories remain on an acceptable level.
 44. A method according to claim 42, wherein said congestion control method of said third operating mode is adapted to control adaptive traffic sources in a way that a congestion situation is alleviated before said congestion situation reaches said third congestion level.
 45. A method according to claim 42, wherein said congestion control method of said fourth operating mode is adapted to divide the capacity of said packet data network proportional to nominal bit rates.
 46. A system for handling network congestion in a packet data network, wherein said system is arranged to determine a congestion level in said packet data network, and to select based on said determined congestion level one of at least two operating modes for said network congestion handling, wherein said at least two operating modes comprise a quality-based operating mode for controlling network congestion based on quality requirements of applications, and a quantity-based operating mode for controlling network congestion based on a desired sharing of resources between different flows and/or customers, and wherein said system is arranged to select said quality-based operating mode at a lower congestion level, and to select said quantity-based operating mode at a higher congestion level.
 47. A system according to claim 46, wherein said system is arranged to determine said congestion level in a predetermined network element.
 48. A system according to claim 46, wherein said system is arrange to determine said congestion level in a predetermined number of network elements.
 49. A system according to claim 46, wherein said system is arranged to determine said congestion level in the whole packet data network.
 50. A system according to claim 46, wherein said congestion level is determined based on either the whole traffic or a subset of traffic.
 51. A network element for handling network congestion in a packet data network, said network element being arranged to determine a congestion level in said network element, and to select based on said determined congestion level one of at least two operating modes for said network congestion handling, wherein said at least two operating modes comprise a quality-based operating mode for controlling network congestion based on quality requirements of applications, and a quantity-based operating mode for controlling network congestion based on a desired sharing of resources between different flows and/or customers, and wherein said network element is arranged to select said quality-based operating mode at a lower congestion level, and to select said quantity-based operating mode at a higher congestion level.
 52. A network element according to claim 51, wherein said network element is a router or a buffer for an outgoing link in said packet data network. 